package com.starhub.domain.ai.service;

import java.util.List;

/**
 * 向量服务接口
 */
public interface IVectorService {

    String search(String vectorStoreId, String query);
    
    /**
     * 将文本转换为向量
     * @param text 输入文本
     * @return 向量数组
     */
    float[] textToVector(String text);

    /**
     * 批量将文本转换为向量
     * @param texts 文本列表
     * @return 向量数组列表
     */
    List<float[]> textsToVectors(List<String> texts);

    /**
     * 计算两个向量的相似度
     * @param vector1 向量1
     * @param vector2 向量2
     * @return 相似度分数
     */
    float calculateSimilarity(float[] vector1, float[] vector2);

    /**
     * 在向量库中搜索相似文本
     * @param query 查询文本
     * @param topK 返回最相似的前K个结果
     * @return 相似文本列表
     */
    List<String> searchSimilarTexts(String query, int topK);
} 